/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pizzaria.cadastros;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *
 * @author Rafael.Fischer
 */
public class cadastroPessoa {

    private String pessoaNome;
    private String pessoaRua;
    private String pessoaBairro;
    private String pessoaCidade;
    private String pessoaFone;
    private String pessoaEmail;
    private int pessoaTipoPessoa;
    private int pessoaID;
    private int pessoaTipoVeiculo;

    public cadastroPessoa(String pessoaNome, String pessoaRua, String pessoaBairro, String pessoaCidade, String pessoaFone, String pessoaEmail, int pessoaTipoPessoa, int pessoaID, int tipoVeiculo) {
        this.setPessoaBairro(pessoaBairro);
        this.setPessoaCidade(pessoaCidade);
        this.setPessoaEmail(pessoaEmail);
        this.setPessoaFone(pessoaFone);
        this.setPessoaID(pessoaID);
        this.setPessoaNome(pessoaNome);
        this.setPessoaRua(pessoaRua);
        this.setPessoaTipoPessoa(pessoaTipoPessoa);
        this.setPessoaTipoVeiculo(tipoVeiculo);
    }
    
    

    /**
     * @return the pessoaNome
     */
    public String getPessoaNome() {
        return pessoaNome;
    }

    /**
     * @param pessoaNome the pessoaNome to set
     */
    public void setPessoaNome(String pessoaNome) {
        if (pessoaNome == null
                || pessoaNome.isEmpty()) {
            throw new IllegalArgumentException("Campo nome não pode ser vazio");
        }
        this.pessoaNome = pessoaNome;
    }

    /**
     * @return the pessoaRua
     */
    public String getPessoaRua() {
        return pessoaRua;
    }

    /**
     * @param pessoaRua the pessoaRua to set
     */
    public void setPessoaRua(String pessoaRua) {
        if (pessoaRua == null
                || pessoaRua.isEmpty()) {
            throw new IllegalArgumentException("Campo rua não pode ser vazio");
        }
        this.pessoaRua = pessoaRua;
    }

    /**
     * @return the pessoaBairro
     */
    public String getPessoaBairro() {
        return pessoaBairro;
    }

    /**
     * @param pessoaBairro the pessoaBairro to set
     */
    public void setPessoaBairro(String pessoaBairro) {
        if (pessoaBairro == null
                || pessoaBairro.isEmpty()) {
            throw new IllegalArgumentException("Campo bairro não pode ser vazio");
        }
        this.pessoaBairro = pessoaBairro;
    }

    /**
     * @return the pessoaCidade
     */
    public String getPessoaCidade() {
        return pessoaCidade;
    }

    /**
     * @param pessoaCidade the pessoaCidade to set
     */
    public void setPessoaCidade(String pessoaCidade) {
        if (pessoaCidade == null
                || pessoaCidade.isEmpty()) {
            throw new IllegalArgumentException("Campo cidade não pode ser vazio");
        }
        this.pessoaCidade = pessoaCidade;

    }

    /**
     * @return the pessoaFone
     */
    public String getPessoaFone() {
        return pessoaFone;
    }

    /**
     * @param pessoaFone the pessoaFone to set
     */
    public void setPessoaFone(String pessoaFone) {
        if (pessoaFone == null
                || pessoaFone.isEmpty()) {
            throw new IllegalArgumentException("Campo telefone não pode ser vazio");
        }
        this.pessoaFone = pessoaFone;
    }

    /**
     * @return the pessoaEmail
     */
    public String getPessoaEmail() {
        return pessoaEmail;
    }
    
    
    /**
     * @return the pessoaTipoVeiculo
     */
    public int getPessoaTipoVeiculo() {
        return pessoaTipoVeiculo;
    }

    /**
     * @param pessoaTipoVeiculo the pessoaTipoVeiculo to set
     */
    public void setPessoaTipoVeiculo(int pessoaTipoVeiculo) {
        if (pessoaTipoVeiculo != 0 || pessoaTipoVeiculo != 1)
                {
            throw new IllegalArgumentException("Escolha um tipo de veiculo para o entregador");
        }
        this.pessoaTipoVeiculo = pessoaTipoVeiculo;
    }
    
    
    
    

    /**
     * @param pessoaEmail the pessoaEmail to set //Fonte:
     * http://www.byiorio.com/wordpress/2011/12/19/expressao-regular-no-java/
     * for (String email : emails) { if (email != null) {
     * System.out.println(email + " : " + checkEmail(email)); } }
     */
    public void setPessoaEmail(String pessoaEmail) {
        if (pessoaEmail == null
                || pessoaEmail.isEmpty()) {
            throw new IllegalArgumentException("Campo E-mail não pode ser vazio");
        } else {

            String[] testeEmails = {pessoaEmail};
            for (String email : testeEmails) {
                if (email != null) {
                    if (validaEmail(email) == true) {
                        String str = "Campo E-mail deve conter apenas letras de a a z, numero de 0 a 9, . - ou _, "
                                + "@ (arroba) e não deve conter espaços em branco";
                        throw new IllegalArgumentException("Campo E-mail deve conter apenas letras de a a z, numero de 0 a 9, . - ou _, "
                                + "@ (arroba) e não deve conter espaços em branco");
                    }
                }
            }
        }
        this.pessoaEmail = pessoaEmail;
    }

    /**
     * @return the pessoaTipoPessoa
     */
    public int getPessoaTipoPessoa() {
        return pessoaTipoPessoa;
    }

    /**
     * @param pessoaTipoPessoa the pessoaTipoPessoa to set 1= Cliente 2= Motoboy
     * 3= Atendente 4= Pizzaiolo
     */
    public void setPessoaTipoPessoa(int pessoaTipoPessoa) {
        if (pessoaTipoPessoa != 1 || pessoaTipoPessoa != 2 || pessoaTipoPessoa != 3 || pessoaTipoPessoa != 4) {
            throw new IllegalArgumentException("Campo E-mail não pode ser vazio");
        }
        this.pessoaTipoPessoa = pessoaTipoPessoa;
    }

    /**
     * @return the pessoaID
     */
    public int getPessoaID() {
        return pessoaID;
    }

    /**
     * @param pessoaID the pessoaID to set
     */
    public void setPessoaID(int pessoaID) {
        this.pessoaID = pessoaID;
    }

    //Fonte: http://www.byiorio.com/wordpress/2011/12/19/expressao-regular-no-java/
    private boolean validaEmail(String email) {
        Pattern pattern = Pattern.compile("[\\w-_.&]+@[\\w-_&]+[.]{1}[\\w-_]+[.]?[\\w-_]+");
        Matcher matcher = pattern.matcher(email);
        return matcher.matches();


    }
}